#ifndef __F5FFAE3B_53B0_49c7_ACF5_E6090ABAB478__
#define __F5FFAE3B_53B0_49c7_ACF5_E6090ABAB478__

#include "../import/head.h"
#include "../tools/head.h"

/////////////////////////////////////////////////////////////////////////////////////////
// 

namespace xos
{
    // 
    // dir_monitor_impl
    // 
    class dir_monitor_impl : public xos_stl::mem_pool_item< dir_monitor_impl, thread_lock >,
        public i_dir_monitor
    {
    public:
        dir_monitor_impl();
        ~dir_monitor_impl();

    public:
        int init();
        int term();

    public:
        // 
        // set callback
        // 
        int set_callback( i_callback * lpCallback, i_runnable * lpRunnableObj );

        // 
        // set dir to monitor
        // 
        int set_dir( const char * lpszPath );

        // 
        // release
        // 
        int release();
    };
} // xos

#endif // __F5FFAE3B_53B0_49c7_ACF5_E6090ABAB478__
